/*
 *  InitParam.h
 *  Milovo03epsilon03
 *
 *  Created by luca on 04/08/06.
 *  Copyright 2006 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef INITPARAM_H
#define INITPARAM_H

#include "Milovo_HCommons.h"

class MilinitParams
{
	Mil_Int NumAgents;
	Mil_Int NumMinRecipesPerAgent;
	Mil_Int NumMaxRecipesPerAgent;
	Mil_Int NumMinArtifactsPerRecipe;
	Mil_Int NumMaxArtifactsPerRecipe;
	Mil_Int ValidateRecipeOutputInitNet;
	Mil_Int UseTypeNetwork;
	Mil_Int SeedRandomValue; 
	Mil_Double StartActivityAgents;
	
public:
	vector<Mil_Int> VectRawMaterials;
	vector<Mil_Int> VectOperators;

	MilinitParams();
	MilinitParams(Mil_Int tmpNumAgents, Mil_Int tmpNumMinRecipesPerAgent, Mil_Int tmpNumMaxRecipesPerAgent, Mil_Int tmpNumMinArtifactsPerRecipe, 
					  Mil_Int tmpNumMaxArtifactsPerRecipe, Mil_Int tmpUseTypeNetwork, Mil_Int tmpSeedRandomValue, Mil_Double tmpStartActivityAgents, 
					  Mil_Int tmpValidateRecipeOutputInitNet);
	~MilinitParams();

	Mil_Int GetNumAgents() {return NumAgents;}
	Mil_Int GetNumMinRecipesPerAgent() {return NumMinRecipesPerAgent;}
	Mil_Int GetNumMaxRecipesPerAgent() {return NumMaxRecipesPerAgent;}
	Mil_Int GetNumMinArtifactsPerRecipe() {return NumMinArtifactsPerRecipe;}
	Mil_Int GetNumMaxArtifactsPerRecipe() {return NumMaxArtifactsPerRecipe;}
	Mil_Int GetValidateRecipeOutputInitNet() {return ValidateRecipeOutputInitNet;}
	
	Mil_Int GetUseTypeNetwork() {return UseTypeNetwork;}
	Mil_Int GetSeedRandomValue() {return SeedRandomValue;} 
	Mil_Double GetStartActivityAgents() {return StartActivityAgents;}
	
	void LoadInitNetParam(string srtPath);
	void LoadRawMaterials(string strPath);
	void LoadOperators(string strPath);
	void PrintInitNetParam();
};

#endif

